package cn.czh.basic.listener;

import cn.czh.system.service.IPermissionScanService;
import org.springframework.beans.factory.annotation.Autowired;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener //监听器是在项目启动的时候就会执行 - 扫描注解的逻辑写在这里面
//程序一启动就会创建上下文对象ServletContext -- ServletContextListener就会起作用
//自动创建对象并调用contextInitialized上下文的初始化方法
public class PermissionScanInitListener implements ServletContextListener {
    @Autowired
    private IPermissionScanService permissionScanService;

    @Override
    public void contextInitialized(ServletContextEvent sce) {

        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("权限注解扫苗开始");
                //扫描包 - 扫面类 - 扫描接口方法 - 扫描注解 - 解析注解
                // - 获取注解上的参数：name、sn【自定义注解上】、url【xxxMapping注解上】
                permissionScanService.scanPermission();

                System.out.println("权限注解扫苗完毕");
            }
        }).start();
    }
}
